#include <iostream>
#include <list>
using namespace std;
/**
 * @brief 
 * 一队士兵报数：从头开始进行1至 2 报数，凡报到 2 的出列,剩下的向小序号方向靠拢,
 * 再从头开始进行1至3报数,凡报到 3 的出列,剩下的向小序号方向靠拢,
 * 以后从头开始轮流进行1至2报数、1至3 报数,直到剩下的人数不超过3为止。
 * 输入：士兵人数。
 * 输出：剩下士兵最初的编号。
 * 
 * 输入：4
 * 输出：1 3
 * @return int 
 */
int main(){
    int n;
    cin>>n;
    int k = 2;
    list<int> mylist;
    list<int>::iterator it;
    for(int i = 1; i <= n; i++){
        mylist.push_back(i);
    }
    while(mylist.size() > 3){
        int num = 1;
        for(it = mylist.begin(); it != mylist.end();){
            if(num++ % k == 0){
                it = mylist.erase(it);
            }else{
                it++;
            }
            
        }
        k == 2 ? k = 3 : k = 2;
    }
    for(it = mylist.begin(); it != mylist.end(); it++){
        if(it != mylist.begin()){
            cout<<" ";
        }
        cout<<*it;
    }
    cout<<endl;
    return 0;
}